// packageA/pages/attendanceDepartMonth/attendanceDepartMonth.js
const app = getApp();
import CommonService from '../../../utils/service/commonService.js';
const util = require('../../../utils/util');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    //当前用户
    user:null,
    //考勤数据
    clockInInfo:null,
    //月份
    showMonth:false,
    currentDate: new Date().getTime(),
    maxDate: new Date().getTime(),
    currentDateStr: util.timeFormatMonth(new Date()),
    //折叠面板当前值
    activeName: null,
    //项目选择框
    showProject:false,
    //项目选择数据
    projectList:[],
    //项目id
    projectId:null,
    //项目名称
    projectName:'选择部门',
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      user: app.globalData.userInfo
    })

    //获取部门月统计
    this.getDepartMonth();
  },

  //获取部门月统计
  getDepartMonth(){
    let start=util.timeFormatMonth2(this.data.currentDate)+'-01';

    //计算下个月
    let time = new Date(this.data.currentDate);
    let year = time.getFullYear();
    let month = time.getMonth() + 2;
    if(month > 12) {
      month = month - 12;
      year = year + 1;
    }
    if(month < 10) {
      month = '0' + month;
    }
    let end = year + '-' + month + '-01';

    let param={
      startTime: start,
      endTime: end
    }

    //接部门查询（当前部门及下级）
    if(this.data.projectId){
      param.depart = [this.data.projectId];
    }

    CommonService.attendanceStatistics(param).then(res=>{
      if(res.data.data && res.data.data.result){
        let result=res.data.data.result;

        console.log('部门月统计');
        console.log(result);

        this.setData({
          clockInInfo: result
        })
      }
    }).catch((error) => {
    })
  },

  //显示月份
  onShowMonth(){
    this.setData({
			showMonth: true
    })
  },

  //隐藏月份
  onCloseMonth(){
    this.setData({
			showMonth: false
    })
  },

  //确认月份
  onConfirmMonth(e){
    this.setData({
      currentDate: e.detail,
      currentDateStr: util.timeFormatMonth(e.detail)
    })

    this.onCloseMonth();

    //获取部门月统计
    this.getDepartMonth();
  },

  //切换
  onChange(event) {
    this.setData({
      activeName: event.detail,
    })
  },

  //跳转人员
  goToPerson(e){
    let detail=e.currentTarget.dataset.detail;

    let obj={
      imei: detail.imei,
      nickName: detail.nickName
    }

    wx.navigateTo({
      url: "/packageA/pages/attendancePersonDay/attendancePersonDay?paramObj="+JSON.stringify(obj)
    })
  },

  //显示项目
  onShowProject(){
    this.setData({
			showProject: true
    })
    this.getProjectList();
  },

  //查询项目
  getProjectList(){
    this.setData({
      projectList: []
    })

    let param = {
      isAuth: true,
      className: 'depart',
      data: {
        searchAll: true,
        selectFields: ['id','name']
      }
    }

    //模糊查询
    if(this.data.valueSearchProject){
      param.data.name='%' + this.data.valueSearchProject + '%';
    }

    CommonService.goFindList(param).then(res=>{
      if(res.data.data && res.data.data.result && res.data.data.result.length){
        let result=res.data.data.result;
        let arr=[];

        result.forEach(item => {
          arr.push({
            text:item.name,
            id:item.id
          });
        });

        this.setData({
          projectList: arr
        })
      }
    }).catch((error) => {
    })
  },

  //隐藏项目
  onCloseProject(){
    this.setData({
      showProject: false,
      valueSearchProject:''
    })
  },

  //确认项目
  onConfirmProject(e){
    this.setData({
      projectId:e.detail.value.id,
      projectName:e.detail.value.text
    })
    this.onCloseProject();
    this.getDepartMonth();
  },

  //搜索项目
  onChangeProjectVal(e){
    this.setData({
      valueSearchProject: e.detail
    })
    this.getProjectList();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  }
})
